package com.run2code.log.parser;

import com.run2code.log.constant.BizLogConsts;
import org.springframework.context.expression.MethodBasedEvaluationContext;
import org.springframework.core.ParameterNameDiscoverer;

import java.lang.reflect.Method;

/**
 * 基于方法的上下文，主要作用：将方法参数放入到上下文中
 * 关注公众号【奔跑的码畜】，一起进步不迷路
 *
 * @author 第七人格
 * @date 2023/10/13
 */
public class BizLogEvaluationContext extends MethodBasedEvaluationContext {

    public BizLogEvaluationContext(Method method, Object[] arguments, ParameterNameDiscoverer parameterNameDiscoverer) {
        super(null, method, arguments, parameterNameDiscoverer);
    }

    /**
     * 将方法执行结果放入上下文中
     *
     * @param errMsg 错误信息
     * @param result 返回结果
     */
    public void putResult(String errMsg, Object result) {
        super.setVariable(BizLogConsts.ERR_MSG, errMsg);
        super.setVariable(BizLogConsts.RESULT, result);
    }
}
